package cn.cailin.day07.demo02Recursion;

import java.io.File;

/*
    练习：
        递归打印多级目录

 */
public class Demo04Recursion {
    public static void main(String[] args) {
        File file = new File("d:\\IDEA");
        getAllFile(file);
    }

    /*
        定义一个方法参数传递File类型的目录
        方法中对目录进行遍历
     */

    public static void getAllFile(File dir) {
        System.out.println(dir);//先打印呗遍历的目录名称
        File[] files = dir.listFiles();
        for (File f : files) {
            //对遍历得到的File对象f进行判断，判断是否是文件夹
            if (f.isDirectory()){
                /*
                    f是一个文件夹，则继续遍历这个文件夹
                    我们发现getAllFile方法就是传递文件夹，遍历文件夹的方法
                    所有之间调用getAllFile方法即可：递归（自己调用自己)
                 */
                getAllFile(f);
            }
                System.out.println(f);


        }
    }
}
